// CrΘer si ce n'est fait un index.html 1er niveau
make_empty_index(str);
//
printf("\n");
printf("Enter URLs (separated by commas or blank spaces) :");
fflush(stdout);
linput(stdin,urls,250);
if (strnotempty(urls)) {
while( (a=strchr(urls,',')) ) *a=' ';
while( (a=strchr(urls,'\t')) ) *a=' ';
// Action
printf("\nAction:\n");
switch(help_query("Mirror Web Site(s)|Mirror Web Site(s) with Wizard|Just Get Files Indicated|Mirror ALL links in URLs (Multiple Mirror)|Test Links In URLs (Bookmark Test)|Update/Continue a Mirror",1)) {
case 1: break;
case 2: strcatbuff(stropt,"W"); break;
case 3: strcatbuff(stropt2,"--get "); break;
case 4: strcatbuff(stropt2,"--mirrorlinks "); break;
case 5: strcatbuff(stropt2,"--testlinks "); break;
infomsg("\twith options listed below: (* is the default value)");
infomsg("");
}
infomsg("General options:");
infomsg(" O path for mirror/logfiles+cache (-O path_mirror[,path_cache_and_logfiles])");
#ifndef HTS_WIN
infomsg(" %O chroot path to, must be r00t (-%O root_path)");
#endif
infomsg("");
infomsg("Action options:");
infomsg(" w *mirror web sites");
infomsg(" W mirror web sites, semi-automatic (asks questions)");
infomsg(" g just get files (saved in the current directory)");
infomsg(" i continue an interrupted mirror using the cache");
infomsg(" Y mirror ALL links located in the first level pages (mirror links)");
infomsg("");
infomsg("Proxy options:");
infomsg(" P proxy use (-P proxy:port or -P user:pass@proxy:port)");
infomsg(" %f *use proxy for ftp (f0 don't use)");
infomsg(" %b use this local hostname to make/send requests (-%b hostname)");
infomsg("");
infomsg("Limits options:");
infomsg(" rN set the mirror depth to N (* r9999)");
infomsg(" %eN set the external links depth to N (* %e0)");
infomsg(" mN maximum file length for a non-html file");
infomsg(" mN,N2 maximum file length for non html (N) and html (N2)");
infomsg(" MN maximum overall size that can be uploaded/scanned");
infomsg(" EN maximum mirror time in seconds (60=1 minute, 3600=1 hour)");
infomsg(" AN maximum transfer rate in bytes/seconds (1000=1KB/s max)");
infomsg(" %cN maximum number of connections/seconds (*%c10)");
infomsg(" GN pause transfer if N bytes reached, and wait until lock file is deleted");
#if HTS_USEMMS
infomsg(" %mN maximum mms stream download time in seconds (60=1 minute, 3600=1 hour)");
#endif
infomsg("");
infomsg("Flow control:");
infomsg(" cN number of multiple connections (*c8)");
infomsg(" TN timeout, number of seconds after a non-responding link is shutdown");
infomsg(" RN number of retries, in case of timeout or non-fatal errors (*R1)");
infomsg(" JN traffic jam control, minimum transfert rate (bytes/seconds) tolerated for a link");
infomsg(" HN host is abandonned if: 0=never, 1=timeout, 2=slow, 3=timeout or slow");
infomsg("");
infomsg("Links options:");
infomsg(" %P *extended parsing, attempt to parse all links, even in unknown tags or Javascript (%P0 don't use)");
infomsg(" n get non-html files 'near' an html file (ex: an image located outside)");
infomsg(" t test all URLs (even forbidden ones)");
infomsg(" %L <file> add all URL located in this text file (one URL per line)");
infomsg(" %S <file> add all scan rules located in this text file (one scan rule per line)");
infomsg("");
infomsg("Build options:");
infomsg(" NN structure type (0 *original structure, 1+: see below)");
infomsg(" or user defined structure (-N \"%h%p/%n%q.%t\")");
infomsg(" %N delayed type check, don't make any link test but wait for files download to start instead (experimental) (%N0 don't use, %N1 use for unknown extensions, * %N2 always use)");
infomsg(" %D cached delayed type check, don't wait for remote type during updates, to speedup them (%D0 wait, * %D1 don't wait)");
infomsg(" %M generate a RFC MIME-encapsulated full-archive (.mht)");